﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="CanDeleteSchema" targetNamespace="http://schemas.microsoft.com/dsltools/CanDelete" elementFormDefault="qualified" xmlns="http://schemas.microsoft.com/dsltools/CanDelete" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <!-- ExampleModel -->
  <xsd:element name="exampleModel" type="ExampleModel" />
  <xsd:complexType name="ExampleModel">
    <xsd:annotation>
      <xsd:documentation>The root in which all other elements are embedded. Appears as a diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Relationship: ExampleModelHasNormalElements -->
      <xsd:element name="normalElements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of ExampleModelHasNormalElements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="exampleModelHasNormalElements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from ExampleModelHasNormalElements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="normalElement" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: ExampleModelHasNeverDeleteElements -->
      <xsd:element name="neverDeleteElements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of ExampleModelHasNeverDeleteElements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="exampleModelHasNeverDeleteElements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from ExampleModelHasNeverDeleteElements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="neverDeleteElement" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!-- Relationship: ExampleModelHasSometimesDeleteElements -->
      <xsd:element name="sometimesDeleteElements" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>Instances of ExampleModelHasSometimesDeleteElements</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded" >
              <xsd:element ref="exampleModelHasSometimesDeleteElements">
                <xsd:annotation>
                  <xsd:documentation>[Relationship deriving from ExampleModelHasSometimesDeleteElements needs to be serialized in full-form]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="sometimesDeleteElement" >
                <xsd:annotation>
                  <xsd:documentation>[Target role-player]</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <!-- Id -->
    <xsd:attribute name="Id" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <!-- dslVersion -->
    <xsd:attribute name="dslVersion" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>Version of the model serialized in this file.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- ExampleModel Moniker -->
  <xsd:element name="exampleModelMoniker" type="ExampleModelMoniker" />
  <xsd:complexType name="ExampleModelMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ExampleModel instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Id" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- NormalElement -->
  <xsd:element name="normalElement" type="NormalElement" />
  <xsd:complexType name="NormalElement">
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" use="required" />
  </xsd:complexType>
  
  <!-- NormalElement Moniker -->
  <xsd:element name="normalElementMoniker" type="NormalElementMoniker" />
  <xsd:complexType name="NormalElementMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for NormalElement instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="name" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- NeverDeleteElement -->
  <xsd:element name="neverDeleteElement" type="NeverDeleteElement" />
  <xsd:complexType name="NeverDeleteElement">
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" use="required" />
  </xsd:complexType>
  
  <!-- NeverDeleteElement Moniker -->
  <xsd:element name="neverDeleteElementMoniker" type="NeverDeleteElementMoniker" />
  <xsd:complexType name="NeverDeleteElementMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for NeverDeleteElement instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="name" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- SometimesDeleteElement -->
  <xsd:element name="sometimesDeleteElement" type="SometimesDeleteElement" />
  <xsd:complexType name="SometimesDeleteElement">
    <!-- Property: Name -->
    <xsd:attribute name="name" type="xsd:string" use="required" />
    <!-- Property: AllowDelete -->
    <xsd:attribute name="allowDelete" type="xsd:boolean" />
  </xsd:complexType>
  
  <!-- SometimesDeleteElement Moniker -->
  <xsd:element name="sometimesDeleteElementMoniker" type="SometimesDeleteElementMoniker" />
  <xsd:complexType name="SometimesDeleteElementMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for SometimesDeleteElement instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="name" type="xsd:string" >
      <xsd:annotation>
        <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <!-- ExampleModelHasNormalElements -->
  <xsd:element name="exampleModelHasNormalElements" abstract="true" type="ExampleModelHasNormalElements" />
  <xsd:complexType name="ExampleModelHasNormalElements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end NormalElement -->
      <xsd:element ref="normalElement" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- ExampleModelHasNormalElements Moniker -->
  <xsd:element name="exampleModelHasNormalElementsMoniker" abstract="true" type="ExampleModelHasNormalElementsMoniker" />
  <xsd:complexType name="ExampleModelHasNormalElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ExampleModelHasNormalElements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- ExampleModelHasNeverDeleteElements -->
  <xsd:element name="exampleModelHasNeverDeleteElements" abstract="true" type="ExampleModelHasNeverDeleteElements" />
  <xsd:complexType name="ExampleModelHasNeverDeleteElements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end NeverDeleteElement -->
      <xsd:element ref="neverDeleteElement" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- ExampleModelHasNeverDeleteElements Moniker -->
  <xsd:element name="exampleModelHasNeverDeleteElementsMoniker" abstract="true" type="ExampleModelHasNeverDeleteElementsMoniker" />
  <xsd:complexType name="ExampleModelHasNeverDeleteElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ExampleModelHasNeverDeleteElements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
  <!-- ExampleModelHasSometimesDeleteElements -->
  <xsd:element name="exampleModelHasSometimesDeleteElements" abstract="true" type="ExampleModelHasSometimesDeleteElements" />
  <xsd:complexType name="ExampleModelHasSometimesDeleteElements" abstract="true" >
    <xsd:sequence minOccurs="0" maxOccurs="1">
      <!-- Target end SometimesDeleteElement -->
      <xsd:element ref="sometimesDeleteElement" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>[Target role-player]</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  
  <!-- ExampleModelHasSometimesDeleteElements Moniker -->
  <xsd:element name="exampleModelHasSometimesDeleteElementsMoniker" abstract="true" type="ExampleModelHasSometimesDeleteElementsMoniker" />
  <xsd:complexType name="ExampleModelHasSometimesDeleteElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ExampleModelHasSometimesDeleteElements instance.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  
</xsd:schema>

